package _05_Interface;

import java.util.function.Supplier;

public class _03_Interface {

	public static void main(String[] args) {
		Person_01 m1 = PersonFactory.create(Man_01::new);
		m1.say();
//		人们都会说话,男人说话更粗糙

	}

}

interface PersonFactory {
	public static Person_01 create(Supplier<Person_01> supplier) {
		return supplier.get();
	}
}

interface Person_01 {
	default void say() {
		System.out.println("人都会说话");
	}

	public static void run() {
		System.out.println("人都可以跑");
	}
}

class Man_01 implements Person_01 {
	@Override
	public void say() {
		// 直接使用 super 是找继承的父类
		// 如何调用接口中的默认方呢? 使用接口名.super.fangfa()
//		Person_01.super.say();
		System.out.println("人们都会说话,男人说话更粗糙");
	}

	public static void run() {
		System.out.println("人都可以跑,男人跑的更快");
	}
}